﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Kollektiv.Config;
using System.IO;

namespace Kollektiv.Configurator
{
    public class Program
    {
        static void Main(string[] args)
        {
            ConfigService.SetDirectory(Path.Combine(Directory.GetCurrentDirectory(), "..", "..", "..", "Kollektiv"));

            ConfigService.Save<Kollektiv.Controller.BaseControllerConfig>(new Kollektiv.Controller.BaseControllerConfig()
            {
                BaseDataServiceID = "kollektiv"
            });

            ConfigService.Save<Kollektiv.DB.DataServiceConfig>(new Kollektiv.DB.DataServiceConfig()
            {
                Instances = new Kollektiv.DB.DataServiceInstanceConfig[]
                {
                    new Kollektiv.DB.DataServiceInstanceConfig()
                    {
                        ID = "kollektiv",
                        DataManagerTypeName = "Kollektiv.DB.NHibernate.NHibernateService, Kollektiv.DB.NHibernate",
                        RepositoryAssemblyNames =
                            "Kollektiv.DataModel;Kollektiv.DataModel.Web;Kollektiv.DataModel.Problems;Kollektiv.DataModel.Wiki;Kollektiv.DataModel.Questions",
                        Values = new ConfigValue[]
                        {
                            new ConfigValue() { Key = "DBTYPE", Value = "MySQL" },
                            new ConfigValue() { Key = "HOST", Value = "127.0.0.1"},
                            new ConfigValue() { Key = "PORT", Value = "3306"},
                            new ConfigValue() { Key = "DB", Value = "kollektiv"},
                            new ConfigValue() { Key = "USERNAME", Value = "kollektiv"},
                            new ConfigValue() { Key = "PASSWORD", Value = "kollektiv"},
                            new ConfigValue() { Key = "ASSEMBLIES", Value = "Kollektiv.DataModel.NHibernate;Kollektiv.DataModel.Web.NHibernate;Kollektiv.DataModel.Problems.NHibernate;Kollektiv.DataModel.Wiki.NHibernate;Kollektiv.DataModel.Questions.NHibernate"}
                        }
                    }
                }
            });

            ConfigService.Save<Kollektiv.Web.Mvc.RouteServiceConfig>(new Kollektiv.Web.Mvc.RouteServiceConfig()
            {
                Instances = new Kollektiv.Web.Mvc.RouteServiceInstanceConfig[]
                {
                    new Kollektiv.Web.Mvc.RouteServiceInstanceConfig()
                    {
                        ID = "base",
                        ControllerAssemblyName = "Kollektiv.Controller"//,
                    //    DefaultController = "User",
                    //    DefaultAction = "Config"
                    }
                }
            });
        }
    }
}
